package cn.caishen.report.service.system;

import cn.caishen.report.common.utils.LbMap;
import cn.caishen.report.domain.system.Module;
import cn.caishen.report.vo.UserVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 模块管理Service接口
 *
 * @author LB
 * @description LB
 * @create 2021-03-22 14:25:56
 **/
public interface ModuleService extends IService<Module> {

    /**
     * 分页查询列表
     *
     * @param page
     * @param limit
     * @param param
     * @return
     */
    PageInfo<Module> getList(int page, int limit, LbMap param);

    /**
     * 新增信息
     *
     * @param module
     */
    void saveOne(Module module);

    /**
     * 修改信息
     *
     * @param module
     */
    void update(Module module);

    /**
     * 删除信息
     *
     * @param primaryKey
     */
    void delete(String primaryKey);

    /**
     * 根据登录用户查询模块信息
     *
     * @param userVo
     * @return
     */
    List<Module> getModuleListByUser(UserVo userVo);

    /**
     * 查询所有商户模块
     *
     * @return
     */
    List<Module> getAllModule();

    /**
     * 该角色本身有的商户模块
     *
     * @param roleId
     * @return
     */
    List<Module> getModuleListByRoleId(String roleId);


    /**
     * 查询所有报表模块
     *
     * @return
     */
    List<Module> getAllReportModule();

    List<Module> getAllList(LbMap param);
}